package cn.exrick.xboot.base.service

import cn.exrick.xboot.base.entity.AdministrativeOffice
import cn.exrick.xboot.base.vo.AdministrativeOfficeVo
import cn.exrick.xboot.core.common.vo.PageVo
import cn.exrick.xboot.core.common.vo.Result
import com.baomidou.mybatisplus.core.metadata.IPage
import com.baomidou.mybatisplus.extension.service.IService

/**
 * 科室接口
 * @author Fei
 */
interface IAdministrativeOfficeService : IService<AdministrativeOffice?> {


    /**
     * 创建或者更新科室
     */
    fun createOrUpdateOffice(administrativeOffice: AdministrativeOffice?): Result<Any?>?

    /**
     * 移除科室
     */
    fun removeOffice(ids:Array<out String>): Result<Any?>?

    /**
     * 获取同级科室
     * @param pageVo 分页参数
     * @return 科室数据
     */
    fun getByPage(pageVo: PageVo, administrativeOffice: AdministrativeOffice?): Result<MutableMap<String, Any?>>?

    /**
     * 根据id获取科室名称
     * @param id id
     * @return 科室名称
     */
    fun getOfficeNameById(id: String?): String?

    /**
     * 根据条件或者科室列表
     * @return 科室列表
     */
    fun officeVoList(): Result<MutableList<AdministrativeOfficeVo>?>?
}